﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Datos.Reclamos;
using Entidades.Reclamos;
using Datos.Reclamos.DAL;

namespace Negocio.Reclamos
{
    public class RecReclamoBLL : IRecReclamoBLL
    {
        #region ATRIBUTOS

        private IRecReclamoDAL _ReclamoDAL;
       
        #endregion

        #region CONSTRUCTOR

        public RecReclamoBLL()
        {
            this._ReclamoDAL = new RecReclamoDAL();
        }

        #endregion

        #region METODOS PARA LOS PRODUCTOS/SERVICIOS OFRECIDOS

        public List<GenLocal> listarLocal()
        {
            List<GenLocal> lista = new List<GenLocal>();
            try
            {
                lista = _ReclamoDAL.listarLocal();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return lista;
        }

        #endregion


        #region METODOS PARA LOS PRODUCTOS/SERVICIOS OFRECIDOS

        public List<RecTipoBienContratado> listarBienes()
        {
            List<RecTipoBienContratado> lista = new List<RecTipoBienContratado>();
            try
            {
                lista = _ReclamoDAL.listarBienes();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return lista;
        }

        #endregion
        
        #region METODOS PARA LOS RECLAMOS

        public int insertarReclamo(RecReclamo reclamo)
        {
            try
            {
                reclamo.IdReclamo = _ReclamoDAL.insertar(reclamo);
            }
            catch (Exception ex)
            {                
                throw ex;
            }
            return reclamo.IdReclamo;
        }

        public int actualizarReclamo(RecReclamo reclamo)
        {
            try
            {
                reclamo.IdReclamo = _ReclamoDAL.actualizar(reclamo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return reclamo.IdReclamo;
        }

        public List<RecReclamo> listarReclamo(RecReclamo reclamo)
        {
            List<RecReclamo> lista = new List<RecReclamo>();
            try
            {
                lista = _ReclamoDAL.listar(reclamo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return lista;
        }

        public RecReclamo obtenerReclamo(int codigo)
        {
            RecReclamo lista = new RecReclamo();
            try
            {
                lista = _ReclamoDAL.obtener(codigo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return lista;
        }

        public int eliminarReclamo(int codigo)
        {
            int resultado = 0;
            try
            {
                resultado = _ReclamoDAL.eliminar(codigo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return resultado;
        }

        public List<RecReclamo> listarReclamoSolucionados(RecReclamo reclamo)
        {
            List<RecReclamo> lista = new List<RecReclamo>();
            try
            {
                lista = _ReclamoDAL.listarSolucionados(reclamo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return lista;
        }
        #endregion
  

    }
}
